--- title: Diffusion Distance Based Loss keywords: fastai sidebar: home_sidebar nb_path: "05c05a Diffusion map embedding with an autoencoder.ipynb" ---
It will be helpful to compare the two different distance matrices, so here's a visualization function for that:
from directed_graphs.datasets import directed_swiss_roll_sklearn, plot_directed_3d
X, flow, labels = directed_swiss_roll_sklearn(num_nodes=2000)
X = torch.tensor(X).float().to(device)
flow = torch.tensor(flow).float().to(device)
X = X.float().to(device)
flow = flow.float().to(device)
DODO_FET = DiffusionDistanceFlowEmbedder(X, flow, labels = labels, device = device)
DODO_FET.fit()
DODO_FET.visualize_embedding()
DODO_FET.training_gif()
DODO_FET.FE.precomputed_distances
DODO_FET.visualize_loss()
plt.scatter(DODO_FET.FE.diff_coords[:,0].cpu().numpy(),DODO_FET.FE.diff_coords[:,1].cpu().numpy(),c=labels)
torch.max(DODO_FET.FE.precomputed_distances)
np.amax(DODO_FET.FE.diff_coords.cpu().numpy())
DODO_FET.FE.diff_coords.cpu().numpy()
DODO_FET.losses['diffusion']
import glob
import ipywidgets as widgets
from PIL import Image
import os
import ipywidgets as widgets
import base64
frames = [Image.open(image) for image in glob.glob(f"visualizations/{BOBO_FET.timestamp}/*.jpg")]
frame_one = frames[0]
frame_one.save(f"{BOBO_FET.title}.gif", format="GIF", append_images=frames,
save_all=True, duration=300, loop=0)
# display in jupyter notebook
b64 = base64.b64encode(open(f"{BOBO_FET.title}.gif",'rb').read()).decode('ascii')
display(widgets.HTML(f'<img src="data:image/gif;base64,{b64}" />'))